热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

本文|老规矩_100个Unity实用技能|Unity读取本地文件(Json,txt等)的三种方法示例

篇首语:本文由编程笔记#小编为大家整理,主要介绍了100个Unity实用技能|Unity读取本地文件(Json,txt等)的三种方法示例相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了100个 Unity实用技能| Unity读取本地文件(Json,txt等)的三种方法示例相关的知识,希望对你有一定的参考价值。



Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:


  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发美术建筑汽车设计影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机平板电脑PC游戏主机增强现实虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!


  • 🎬 博客主页:https://xiaoy.blog.csdn.net

  • 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉

  • 🎄 学习专栏推荐:Unity系统学习专栏

  • 🌲 游戏制作专栏推荐:游戏制作

  • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程

  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📆 未来很长,值得我们全力奔赴更美好的生活✨

  • ------------------❤️分割线❤️-------------------------





Unity 实用小技能学习


Unity读取本地文件(Json,txt等)的两种方法

在Unity中经常会用到读取本地文件的方法,所以本篇文章写了两种简单的方法做示例来看一下,如果有更方便的方法也希望看到本文的小伙伴在评论区补充一下哦!

本文中加在文件的路径统一用的:Application.streamingAssetsPath ,也就是项目中的Assets/StreamingAssets路径

关于Unity中几种路径的介绍可以看这篇文章:
【100个 Unity实用技能】| Unity中常用的几种路径 分析,不同平台路径总结

Json文件很简单,内容如下:

第一种:System.IO读取本地文件

这种方法是比较常用的一种,通过IO流的StreamReader方法进行文件读取。需要导入命名空间System.IO;
这也是C#语言读取文件的一种常用方式。

示例代码如下:

using System.IO;
using UnityEngine;
public class FileReadTest : MonoBehaviour

void Update()

//当按下鼠标左键时
if (Input.GetMouseButtonDown(0))

StartCoroutine(ReadData());



///


/// IO读取
///

///
private IEnumerator ReadData()

string readData;
string fileUrl = Application.streamingAssetsPath + "/FileReadTest.json";
//读取文件
using (StreamReader sr = File.OpenText(fileUrl))

//数据保存
readData = sr.ReadToEnd();
sr.Close();

//返回数据
Debug.Log("打印读取的技能Json:" + readData);
yield return null;


第二种:WWW的方式读取文件

WWW类是Unity网络开发中使用频率非常高的一个工具类,主要提供一般HTTP访问的功能,以及从网络上动态的下载图片,声音,视频资源等等。 ​

目前WWW支持的协议有http://,https://,file://,ftp://,其中file是访问本地文件,所以我们这里用这个file

示例代码如下:

using System.Collections;
using System.IO;
using UnityEngine;
using UnityEngine.Networking;
public class FileReadTest : MonoBehaviour

void Update()

//当按下鼠标右键时
if (Input.GetMouseButtonDown(1))

StartCoroutine(WWWRead());



///


/// WWW读取
///

///
private IEnumerator WWWRead()

WWW www = new WWW("file:///" + Application.streamingAssetsPath + "/FileReadTest.json");
if (www.error != null)

Debug.Log("error while reading files : " + Application.streamingAssetsPath + "/FileReadTest.json");

while (!www.isDone)
Debug.Log("打印读取的技能Json:" + www.text);
yield return null;


第三种:UnityWebRequest的方式读取文件

这种方式与WWW类似,只不过下载文件的时候可以断点续传,应该也算是Unity出的一个想替代WWW的一种方法吧

示例代码:

using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
public class FileReadTest : MonoBehaviour

void Update()

//当按下鼠标中键时
if (Input.GetMouseButtonDown(2))

StartCoroutine(GetData());



///


/// UnityWebRequest读取
///

///
private IEnumerator GetData()

var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, "FileReadTest.json"));
UnityWebRequest www = UnityWebRequest.Get(uri);
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)

Debug.Log(www.error);

else

string jsonStr = www.downloadHandler.text;
Debug.Log("打印读取的技能Json:" + jsonStr);



如果你有更好的解决方案,欢迎指出 共同进步!




推荐阅读
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 微服务优雅上下线的最佳实践
    本文介绍了微服务上下线的正确姿势,避免使用 kill -9 等粗暴手段,确保服务的稳定性和可靠性。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 在Java编程中,初始化List集合有多种高效的方法。本文介绍了六种常见的技术,包括使用常规方式、Arrays.asList、Collections.addAll、Java 8的Stream API、双重大括号初始化以及使用List.of。每种方法都有其特定的应用场景和优缺点,开发者可以根据实际需求选择最合适的方式。例如,常规方式通过直接创建ArrayList对象并逐个添加元素,适用于需要动态修改列表的情况;而List.of则提供了一种简洁的不可变列表初始化方式,适合于固定数据集的场景。 ... [详细]
  • 在C#编程中,设计流畅的用户界面是一项重要的任务。本文分享了实现Fluent界面设计的技巧与方法,特别是通过编写领域特定语言(DSL)来简化字符串操作。我们探讨了如何在不使用`+`符号的情况下,通过方法链式调用来组合字符串,从而提高代码的可读性和维护性。文章还介绍了如何利用静态方法和扩展方法来实现这一目标,并提供了一些实用的示例代码。 ... [详细]
  • 提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射)
    提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射) ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
author-avatar
sherklock
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有